home *** CD-ROM | disk | FTP | other *** search
/ Personal Paint v7.1 / Cloanto Personal Paint v7.1.iso / rexx / framestoanim.pprx < prev    next >
Text File  |  1997-05-06  |  4KB  |  141 lines

  1. /* Personal Paint Amiga Rexx script - Copyright ⌐ 1995-1997 Cloanto Italia srl */
  2.  
  3. /* $VER: FramesToAnim.pprx 1.1 */
  4.  
  5. /** ENG
  6.   This script converts a set of separate image-files into an animation.
  7.   The files must follow the standard notation <Name>.<XXX>, where XXX
  8.   is the frame number (001, 002, 003, etc.). The number of the first frame
  9.   can be specified.
  10. */
  11.  
  12. /** DEU
  13.   Dieses Skript dient zur Umwandlung einer Reihe von Einzelbildern in eine
  14.   Animation. Die Quelldateien mⁿssen der Standardnotation <Name>.<XXX>
  15.   folgen, wobei XXX die Einzelbildnummer (001, 002, 003, usw.) wiedergibt.
  16.   Die Nummer des ersten Einzelbilders lΣ▀t sich individuell festlegen.
  17. */
  18.  
  19. /** ITA
  20.   Questo script crea un'animazione partendo da un insieme di file di
  21.   immagini separate. I file devono seguire la notazione standard <Nome>.<XXX>, dove
  22.   XXX corrisponde al numero del fotogramma (001, 002, 003, etc.). Si pu≥
  23.   specificare il numero del primo fotogramma.
  24. */
  25.  
  26. IF ARG(1, EXISTS) THEN
  27.     PARSE ARG PPPORT
  28. ELSE
  29.     PPPORT = 'PPAINT'
  30.  
  31. IF ~SHOW('P', PPPORT) THEN DO
  32.     IF EXISTS('PPaint:PPaint') THEN DO
  33.         ADDRESS COMMAND 'Run >NIL: PPaint:PPaint'
  34.         DO 30 WHILE ~SHOW('P',PPPORT)
  35.              ADDRESS COMMAND 'Wait >NIL: 1 SEC'
  36.         END
  37.     END
  38.     ELSE DO
  39.         SAY "Personal Paint could not be loaded."
  40.         EXIT 10
  41.     END
  42. END
  43.  
  44. IF ~SHOW('P', PPPORT) THEN DO
  45.     SAY 'Personal Paint Rexx port could not be opened'
  46.     EXIT 10
  47. END
  48.  
  49. ADDRESS VALUE PPPORT
  50. OPTIONS RESULTS
  51. OPTIONS FAILAT 10000
  52.  
  53. Get 'LANG'
  54. IF RESULT = 1 THEN DO        /* Deutsch */
  55.     txt_req_sel       = 'Erstes Bild der Sequenz angeben'
  56.     txt_err_badname   = 'Ungⁿltiger Name'
  57.     txt_err_abort     = 'Ladevorgang wurde abgebrochen'
  58.     txt_err_load      = 'Fehler beim Laden: '
  59.     txt_err_oldclient = 'Fⁿr dieses Skript_ist eine neuere Version_von Personal Paint erforderlich'
  60. END
  61. ELSE IF RESULT = 2 THEN DO    /* Italiano */
  62.     txt_req_sel       = 'Selezionare primo fotogramma'
  63.     txt_err_badname   = 'Nome fotogramma non valido'
  64.     txt_err_abort     = 'Operazione annullata'
  65.     txt_err_load      = 'Errore nella lettura: '
  66.     txt_err_oldclient = 'Questa procedura richiede_una versione pi∙ recente_di Personal Paint'
  67. END
  68. ELSE DO                /* English */
  69.     txt_req_sel       = 'Select First Frame of Sequence'
  70.     txt_err_badname   = 'Invalid frame name'
  71.     txt_err_abort     = 'User abort during load'
  72.     txt_err_load      = 'Error during load: '
  73.     txt_err_oldclient = 'This script requires a newer_version of Personal Paint'
  74. END
  75.  
  76. Version 'REXX'
  77. rexxversion = RESULT
  78. IF rexxversion < 7 THEN DO
  79.     RequestNotify 'PROMPT "'txt_err_oldclient'"'
  80.     EXIT 10
  81. END
  82.  
  83. IF rexxversion < 4 THEN DO
  84.     FreeBrush
  85.     IF RC ~= 0 THEN
  86.         EXIT RC
  87.     bshfname = 'T:pprx_bsh.'PRAGMA('ID')
  88.     IF OPEN(bshfile, bshfname, 'W') THEN DO
  89.         WRITECH(bshfile, '464F524D 0000002A 494C424D 424D4844 00000014 00010001 00000000 01020100 00001010 028001E0 424F4459 00000002 FF00'X)
  90.         CALL CLOSE(bshfile)
  91.         LoadBrush bshfname 'FORCE'
  92.     END
  93. END
  94.  
  95. LockGUI
  96. RequestFile '"'txt_req_sel'"'
  97. IF RC = 0 THEN DO
  98.     loadname = RESULT
  99.     pos = LASTPOS('.', loadname)
  100.     len = LENGTH(loadname)
  101.     errcode = 0
  102.     IF pos = 0 THEN DO
  103.         errmess = txt_err_badname
  104.         errcode = 1000
  105.     END
  106.     ELSE DO
  107.         name = SUBSTR(loadname, 2, pos - 2)
  108.         digits = len - pos - 1
  109.         fnum = SUBSTR(loadname, pos + 1, digits)
  110.     END
  111.     IF errcode = 0 THEN DO
  112.         DO FOREVER
  113.             AddFrames        /* add one frame */
  114.             SetFramePosition 'NEXT'
  115.             fname = name || "." || RIGHT(fnum, digits, "0");
  116.             LoadImage '"'fname'" FORCE QUIET'
  117.             IF RC ~= 0 THEN DO
  118.                 IF RC = 5 THEN
  119.                     errmess = txt_err_abort
  120.                 ELSE IF RC ~= 36 THEN
  121.                     errmess = txt_err_load || RC
  122.  
  123.                 IF RC ~= 36 THEN errcode = RC
  124.  
  125.                 DeleteFrames    /* delete current (unused) frame */
  126.                 OptimizeAnimation 'QUIET'
  127.                 LEAVE
  128.             END
  129.             fnum = fnum + 1
  130.         END
  131.     END
  132.     IF errcode > 0 THEN
  133.         RequestNotify 'PROMPT "'errmess'"'
  134. END
  135. UnlockGUI
  136.  
  137. IF rexxversion < 4 THEN DO
  138.     FreeBrush 'FORCE'
  139.     ADDRESS COMMAND 'Delete >NIL: 'bshfname
  140. END
  141.